﻿using System;
using System.Net;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace MusicStore.Silverlight.Converters
{
	/// <summary>
	/// Use this converter for formatting dates in XAML databinding
	/// Example:
	/// Text="{Binding Path=PublishDate, Converter={StaticResource DateTimeFormatter}, ConverterParameter=MMM yy}"
	/// </summary>
	public class DateTimeConverter : IValueConverter
	{
		#region IValueConverter Members

		public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
		{
			DateTime? bindingDate = value as DateTime?;

			if (culture == null)
			{
				culture = Thread.CurrentThread.CurrentUICulture;
			}

			if (bindingDate != null)
			{
				string dateTimeFormat = parameter as string;
				return bindingDate.Value.ToString(dateTimeFormat, culture);
			}

			return string.Empty;
		}

		public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
		{
			if (value == null)
				return DateTime.MinValue;
			return value;
		}

		#endregion
	}
}
